iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
Software Development

模組化設計系列 第 12

Day12 - 最簡單的起手式

  • 分享至 

  • xImage
  •  

模組一開始怎麼界定模組範圍是最困難的,最簡單的方式就是先盡可能切出最小介面,能不公開的就先都不要公開,等到有確定的需求後,再開出新的 API。

以小模組來說,模組最常見的建立方式就是新增一個 lib 資料夾,規劃一個 endpoint 點,例如:koa-router 模組為範例的話,endpoint 是 lib/router.js

你可以看到 koa-router 已經是一週下載量 20 萬次的模組,但它的 API 還是維持的非常簡潔。

koa-router: https://github.com/ZijianHe/koa-router

KOA router API 說明

建構子

首先它提供了一個建構子,可以傳入指定的參數去覆蓋掉預設參數 (opts),如果不傳的話,就都使用預設參數。

new Router([opts])

在文件撰寫上 [] 通常代表可忽略的參數,可傳可不傳的意思。

instance 函式

instance 函式的意思是,使用它之前需要建立一個物件,例如:

const apiRouter = new Router()

router.get('/', (ctx, next) => {
  ctx.body = 'Hello World!'
})

static 函式

static 函式則是不需要先建立物件,就可以直接使用,範例如下所示:

const url = Router.url('/users/:id', { id: 1 })
// => "/users/1"

const url = Router.url('/users/:id', { id: 1 }, { query: { active: true } })
// => "/users/1?active=true"

完整的 API 文件

new Router([opts])

instance
  .get|put|post|patch|delete|del ⇒ Router
  .routes ⇒ function
  .use([path], middleware) ⇒ Router
  .prefix(prefix) ⇒ Router
  .allowedMethods([options]) ⇒ function
  .redirect(source, destination, [code]) ⇒ Router
  .route(name) ⇒ Layer | false
  .url(name, params, [options]) ⇒ String | Error
  .param(param, middleware) ⇒ Router

static
  .url(path, params) ⇒ String

上一篇
Day11 - Module Loader
下一篇
Day13 - 模組的預設參數設計
系列文
模組化設計30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言